home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / doors_2 / uu150.zip / UUDEVKIT.TXT < prev    next >
Text File  |  1992-12-25  |  37KB  |  884 lines

  1. Ultimate Universe Third Party Development Kit for 1.50        Christmas, 1992
  2. ======================================================
  3. Ultimate Universe Copyright (C) 1992, TopherSoft Engineering
  4.  
  5.  
  6. I have had a lot of fun over the years developing Ultimate Universe. And a
  7. lot of people have contributed a lot of very good ideas and suggestions to
  8. making this a enjoyable program.
  9.  
  10. Recently I have entered into a long term project to make Ultimate Universe
  11. a multi-access program so that multi-node BBSs can allow many players to
  12. play simultaneously. Due to the meandering (re: sloppy) construction of
  13. Ultimate Universe this is going to be a lengthly project. I expect that the
  14. game with not expand and evolve much once this project begins, until it ends.
  15.  
  16. With that in mind I am releasing the file structures to the various game
  17. files in the hopes that some person or persons may wish to create add ons
  18. in the form of Additional Daily Suppliments or Editors or what not.
  19.  
  20. I am also pretty easy to reach by phone and don't mind answering questions.
  21. My number is 508-693-7396. This number is a Searchlight BBS running at 14400
  22. bps.
  23.  
  24. All information herein applies to versions 1.40 thru 1.50.
  25.  
  26. Ultimate Universe is written in BC++ 3.1 using only the C aspect of the
  27. compiler. The file formats will be displayed as C structures.
  28.  
  29. This text file contains:
  30.  
  31.       The Structures for GALAXY.UU, LINK.UU, PORT.UU, PLANET.UU,
  32.                  SPY.UU, TALLY.UU, CUBE.UU & SHIP.UU.
  33.       A routine for staying compatable with FILE.DIR.
  34.       A routine for accessing CONFIG.UU and what it means.
  35.  
  36.  
  37. ==============================================================================
  38. /***************
  39.  *
  40.  * GALAXY.UU
  41.  *
  42.  ***************/
  43.  
  44. The Galaxy File contains most of the information about things contained in
  45. the galaxy. It contains one record for each sector of the universe. It also
  46. contains an opening zeroth sector record which contains the following data:
  47.  
  48.       Record Zero:
  49.       GALAXY.PORTER       : Contains the Sector the Ultimate Unifier is in.
  50.       GALAXY.WARP_SHIELD  : The Age of the Universe in Days.
  51.       GALAXY.ORM          : The Current Maximum Number of Sectors.
  52.  
  53. On additional records each sector is it's own record number.
  54.  
  55. Galaxy's structure is as follows:
  56.  
  57. typedef struct
  58.     begin
  59.        int   SECTOR;        : The Sector Number (and Record Number)
  60.        LOBJ  FIGHT;         : NUM is the number of Attack Drones
  61.                 : OWN is the owner's record number
  62.                       if PRG is 2 team's record number
  63.                 : PRG the programming mode
  64.        LOBJ  MINE;          : NUM is the number of Sector Mines
  65.                 : OWN is the owner's record number
  66.                       if PRG is 2 team's record number
  67.                 : PRG the programming mode
  68.        long  PORT;          : The file offset in the PORT.UU file
  69.                   for the port in this sector. Zero if none.
  70.        long  PLANET;        : The file offset in the PLANET.UU file
  71.                   for the planet in this sector. Zero if none.
  72.        char  PLANET_ID;     : owner's record number.
  73.                 : Set to 50 for independent
  74.                 : Set to 53-55 for Meanderer thru Destroyer.
  75.        char  REPLICATOR;    : Mine Replicator. Mine Count is increased
  76.                   by MINE.NUM/REPLICATOR.
  77.        int   PORTER;        : Sector Destination of Teleport Satellite
  78.        long  PORTER_CLOAK;  : Cloaking Energy of Teleport Satellite
  79.        int   WARP_SHIELD;   : Ergs of Warp Shielding
  80.        char  DAMPER;        : Owner Id of Sector Damper
  81.        char  LAST_SHIP;     : Owner Id of Last Ship in Sector
  82.        int   ORM;           : ORM Link Sector Number
  83.        char  BLACKHOLE;     : 1 = Holographic Black Hole
  84.                 : 2 = Wandering Black Hole
  85.                 : 3 = Man made Black Hole
  86.        char  CABAL_REPORT;  : Whether the Cabal in this Sector have been
  87.                   reported.
  88.        char  DECOY;         : Ship ID of Holographic Ship Decoy
  89.        long  DECOY2;        : File offset for Holographic Planet Decoy
  90.        long  DECOY_FIGHT;   : Drone display for Holographic Ship Decoy
  91.        char  MESSAGE_BEACON;: 1 = yes there is a message for this sector.
  92.        char  SPY_WARD;      : Number of Spy Wards.
  93.        char  HOMING_TRAP;   : If set to 127 an open trap is waiting to
  94.                   grab a Ship ID.
  95.                   If set to 0 no homing trap.
  96.                   Else it is set to a Ship ID.
  97.        int   PLATFORM;      : Number of Platform Device Bay Missiles.
  98.        char  ASNARE;        : Ship Id of Autopilot Snare Owner
  99.        char  TRIPWIRE;      : Ship Id of Passage Tripwire Owner.
  100.        char  FLASHWIRE;     : Ship Id of Flashwire Owner.
  101.        int   REFLECT;       : Sector to Display Sector As.
  102.                   (See Sector Reflector)
  103.        char  TOLLSTATION;   : Ship Id of owner of Tollstation.
  104.        long  TOLLFEE;       : Amount to Charge for safe passage.
  105.        long  TOLLCOFFER;    : Total Amount Currently Collected.
  106.        char  TOLLTYPE;      : Type of Tollstation.
  107.        char  NAGATOR;       : Ship Id of Owner of Overspace Navigation
  108.                   Nagator
  109.        char  POPPER;        : Ship Id of owner of Sector Popper.
  110.        char  SETTINGS;      : obsolete, not used.
  111.        char  LINKSUPPRESSER;: Ship Id of owner of Warp Link Suppressor.
  112.        char  DELACOOS;      : Ship Id of owner of Delacoos Drive Disruptor.
  113.        char  MADNESS;       : Level of Space Madness Virus Present.
  114.        char  EXPLODE_DECOY;    : Id Explosive Decoy is Copying
  115.                                      Uses DECOY_FIGHT for number of drones.
  116.        char  MINE_LAUNCHER;    : Mines/MINE_LAUNCHER are launched into
  117.                                      another Sector during Event.
  118.        int   MINE_DESTINATION; : This is the Sector the Mines are Launched
  119.                                      to. If Zero destination is random.
  120.        char  DAMPER_TRIPWIRE;  : Id of Owner of Tripwire
  121.        int   misc3;
  122.        long  misc4;
  123.        long  misc5;
  124.        long  misc6;
  125.        float misc7;
  126.     end FILE1;
  127.  
  128. typedef struct
  129.     begin
  130.        long NUM;
  131.        char OWN;
  132.        char PRG;
  133.     end LOBJ;
  134.  
  135.  
  136. ==============================================================================
  137. /****************
  138.  *
  139.  *  LINK.UU
  140.  *
  141.  ****************/
  142.  
  143. The Galaxya file simply contains the eight potential warp links that each
  144. sector has. A value of zero indicates no warp link. A sector number is the
  145. sector number that this sector is warp linked to. A negative value is a
  146. phantom link indicating that a sector (the absolute value of the that number)
  147. used to be connected to that sector.
  148.  
  149. LINK.UU's structure is as follows:
  150.  
  151.  
  152. typedef struct
  153.     begin
  154.        int LINK[8];
  155.     end FILE1A;
  156.  
  157.  
  158.  
  159.  
  160.  
  161. ==============================================================================
  162.  
  163. /***************
  164.  *                      
  165.  *  PORT.UU
  166.  *
  167.  ***************/
  168.  
  169. The Port File contains information about the port in a sector.
  170. The first record is a dummy blank record and the second record is the
  171. Procurator. If there is a port in a sector the field GALAXY.PORT will
  172. contain the offset to the port record, such that:
  173.         "fseek(portstream, GALAXY.PORT, 0)"
  174. will position the record pointer at the the start of the port record.
  175. If GALAXY.PORT is zero then no port exists.
  176.  
  177. The structure of the port file is as follows:
  178.  
  179. typedef struct
  180.     begin
  181.     char  NAME[30];   : The name of the port.
  182.     char  TYPE;       : The type of the port 
  183.                 1  - sells Ore, 2 - Organics, etc.
  184.                 11 - Sol, 12 - Mars, etc.
  185.                 21 - Procurator.
  186.     long  TRADE[5];   : The number of units of cargo available for 
  187.                 buying or selling per type of cargo.
  188.     float RATES[5];   : The current rate for one unit of cargo per type.
  189.     char  SELL[5];    : Obsolete, no longer in use.
  190.     long  SWAP;       : Used for Procurator Movement.
  191.     int   misc1;      : for future use.
  192.     char  MADNESS;    : Level of Space Madness Virus Present.
  193.     long  misc1;
  194.     long  misc2;
  195.     long  misc3;
  196.     char  misc4;
  197.     float misc5;
  198.     end FILE6;
  199.  
  200. =============================================================================
  201. /***************
  202.  *                           1 = Wanderer
  203.  *  PLANET.UU                2 = Watcher
  204.  *                           3 = Destroyer
  205.  ***************/
  206.  
  207. The Planet File contains information about the planet in a sector.
  208. The first record is a dummy blank record. The first thru third records
  209. contain the Taakian Wandering planets (Record 1 = Meanderer, 2 = Watcher,
  210. 3 = Destroyer).
  211. If there is a planet in a sector the field GALAXY.PLANET will contain the
  212. offset to the planet record, such that:
  213.         "fseek(planetstream, GALAXY.PLANET, 0)"
  214. will position the record pointer at the the start of the planet record.
  215. If GALAXY.PLANET is zero then no planet exists.
  216. There is no way to trace from the Planet file what sector the planet is in.
  217.  
  218. The structure of the planet file is as follows:
  219.  
  220.  
  221. typedef struct
  222.     begin
  223.     char  NAME[30];       : The Name of the Planet
  224.     char  SETTINGS;       : Each bit has meaning
  225.                   :  bit 0 on = Planetary Defenses on. 
  226.                   :  bit 1 on = Team Member may land.
  227.                   :  bit 2 on = Devices 1st Defense Strategy
  228.                   :  bit 3 on = Shuttle Warp Shielding to Surface.
  229.                   :  bit 4 on = Planet infected by Organics virus.
  230.     long  CARGO[12];      : Amount of cargo per catagory. 
  231.     long  PRODUCTION[12]; : Amount of production per catagory.
  232.     int   DEVICE;         : Device ID of Planetary Device.
  233.     int   DEVICE_VAR;     : Variable 1 for Planetary Device.
  234.     int   DEVICE_VAR2;    : Variable 2 for Planetary Device.
  235.     int   HYPERSECTOR;    : Sector Planet will return to from Hyper 
  236.                 storage.
  237.     char  HYPERID;        : Hyper Storage Refernce Number.
  238.     char  MADNESS;        : Level of Space Madness Virus Prsent.
  239.     char  misc1;          : for future use.
  240.     int   misc2;          : for future use.
  241.     long  misc3;
  242.     long  misc4;
  243.     long  misc5;
  244.     long  misc6;
  245.     end FILE7;
  246.  
  247.  
  248. ==============================================================================
  249. SPY.UU
  250.  
  251. The Spy file contains scant information about the detection of Attack Drones,
  252. Sector Mines and Planets in a given sector.
  253. Just like the GALAXY file there is one record for each sector and a dummy
  254. zeroth record.
  255.  
  256. If any field is non zero it means that that object has been located by the 
  257. Spies.
  258.  
  259. The spy structure is as follows:
  260.  
  261. typedef struct
  262.     begin
  263.        char  FIGHT;   : Owner ID of Attack Drones (+56 for Team Ownership).
  264.        char  MINE;    : Owner ID of Sector Mines  (+56 for Team Ownership).
  265.        char  PLANET;  : Owner ID of Planet.
  266.     end SPYFORM;
  267.  
  268. ==============================================================================
  269. CUBE.UU
  270.  
  271. The Cube file contains the information of the contents of the Hyper Cubes &
  272. Swaps. Record zero is a dummy record, records 1 thru MAXPLAYER are the Team
  273. Cubes and any records after that are pointed to by record numbers stored in
  274. varaible 1 of the Hyperdevice.
  275. Number of Device Bays in the cube is held in the Hyper Device not the file.
  276.  
  277. The structure of the Cube File is as follows:
  278.  
  279. typedef struct
  280.    begin
  281.    int  OWNER;      : Owner ID of Hyper Cube.
  282.             : Not really used may be incorrect in some situations.
  283.    int  DEVICE[20]; : Device ID per bay.
  284.    int  VAR[20];    : Device variable 1 per bay.
  285.    int  VAR2[20];   : Device variable 2 per bay.
  286.    char NAME[20];   : Name of the Cube (For HyperSwaps).
  287.    end CUBEFORM;
  288.  
  289. ==============================================================================
  290. The Tally File is sort of a nothing file but with a lot of functions it's use
  291. can speed up applications. This file is simply a one character mark indicating
  292. whether there are Attack Drones, Sector Mines or Planets in a Sector.
  293.  
  294. This file contains a dummy zeroth record and then one character for each 
  295. sector. 
  296.  
  297. typedef struct
  298.    begin
  299.    char MARK;     : If Mark equals 1 there are Attack Drones or Sector Mines
  300.             or a Planet in this sector.
  301.    end TALLYFORM;
  302.  
  303. ==============================================================================
  304. /**********************
  305.  *                    *
  306.  *  SHIP.UU           *
  307.  *                    *
  308.  **********************/
  309.  
  310. As it's name implies the ship file contains all the information about the
  311. condition and components of a ship. Like the GALAXY file this file contains
  312. a dummy zeroth record.
  313. In the zeroth record:
  314.    SHIP.TODAY contains the maximum number of players (MAXPLAYER).
  315.    SHIP.SDAMAGE contains the file format version number.
  316.         To date that is '0'   for pre-140 file format and
  317.                 '140' for version 140 file format.
  318. Three extra records exist at the end of the file.
  319. These are mostly used to house the names of the computer antagonists.
  320. Record Number MAXPLAYER:   contains the Federation.
  321. Record Number MAXPLAYER+1: contains the Cabal.
  322. Record Number MAXPLAYER+2: contains the Anti-Establings.
  323. None of the information below (except Name) applies to those records.
  324.  
  325. The structure of the Ship file is as follows:
  326.  
  327. typedef struct
  328.   begin
  329.   char  NAME[38];         : The name of the ship.
  330.   char  TODAY;            : Number of sessions used that day.
  331.   int   SECTOR;           : The sector the ship is in.
  332.               : Set to Zero indictates a dead ship.
  333.   char  ID;               : Owner ID and record number.
  334.   char  TEAM;             : Team ID ship belongs to. Zero means no team.
  335.   int   DAYS;             : Number of days the ship has survived.
  336.   int   CARGO[5];         : Amount of cargo units per type
  337.   long  ITEM[13];         : Amounts of supplies per item.
  338.               : See below for a list of items.
  339.   int   DEVICE[32];       : Device ID per device bay.
  340.   int   DEVICE_VAR[32];   : Device Variable 1 per device bay.
  341.   int   DEVICE_VAR2[32];  : Device Variable 2 per device bay.
  342.   int   BOARDNO;          : Registration Number of Game ship was created under.
  343.               : This is zero for unregistered versions.
  344.               : May vary from Game ID number if ship is Imported.
  345.   int   COUNT;            : A unique number when combined with BOARDNO that
  346.               : can differentate that ship from all other ships
  347.               : anywhere.
  348.   char  PLAYER[25];       : The Players login name. 
  349.               : Set to NULL indictates a free area to create a
  350.               : new ship.
  351.   char  BAYS;             : The number of device bays.
  352.   long  SECONDS;          : Number of seconds remaining that day.
  353.   char  INACTIVE;         : Number of days on inactivity.
  354.   char  DIMENSION;        : Dimension the Ship is currently in.
  355.   long  FINES;            : Amount of Federation Fines accrued.
  356.   long  DEBT;             : Amount of Federation Debt accrued.
  357.   int   SDAMAGE;          : Number of seconds of sensor damage.
  358.   long  MINES_KILLED;     : Number of Cabal Sector Mines destroyed.
  359.   long  CABAL_KILLED;     : Number of Cabal Attack Drones destroyed.
  360.   char  FED_HOSTILE;      : Set to non zero if ship has been declared an 
  361.               : enemy of the Federation.
  362.   char  COMPUTER;         : Set to non zero if ship's computer is damaged.
  363.   char  MADNESS;          : Indicts Level of Space Madness Virus Present.
  364.   int   IMPORT;           : Importation Copy Number;
  365.   char  EXPERT_LEVEL;     : Toggle (0 or 1) sets expert display mode.
  366.   long  FIRST_DEVICE;     : The maximum amount for free device at port 6.
  367.               : Set to zero after use.
  368.   long  SESSION;          : The amount seconds left in the current session.
  369.   char  misc2;
  370.   long  misc3;
  371.   long  misc4;
  372.   end FILE2;
  373.  
  374. Following is a break down of the Cargo and Item arrays:
  375.  
  376.  
  377.  CARGO[0]  = ore
  378.  CARGO[1]  = organics
  379.  CARGO[2]  = equipment
  380.  CARGO[3]  = power
  381.  CARGO[4]  = water
  382.        
  383.  ITEM[0]   = credits
  384.  ITEM[1]   = fuel units
  385.  ITEM[2]   = cargo holds
  386.  ITEM[3]   = attack drones
  387.  ITEM[4]   = sector mines
  388.  ITEM[5]   = cloaking energy
  389.  ITEM[6]   = anticloaking energy
  390.  ITEM[7]   = plasma warps
  391.  ITEM[8]   = gate warps
  392.  ITEM[9]   = flash warps
  393.  ITEM[10]  = genesis devices
  394.  ITEM[11]  = planetary probes
  395.  ITEM[12]  = for future use
  396.  
  397.  
  398. ==============================================================================
  399. File.DIR contains the filenames and paths to most of the Ultimate Universe
  400. files. While it is rare that any sysop or home user changes these it is best
  401. to make sure that any third party application has respect for FILE.DIR.
  402.  
  403. Following is a routine showing how FILE.DIR is used:
  404. ─────────────────────────────────────────────────────────────────────────────
  405. extern char pfn[100];
  406. extern int  current_universe;
  407. void get_path(int fd)
  408. {
  409. FILE *stream;
  410. int fx = 0;
  411. static char fname[30][13], fdir[30][60];
  412. if(!fd)
  413.    {
  414.    if((stream=_fsopen("FILE.DIR","rt",SH_DENYNO))==NULL)
  415.       {
  416.       perror("Can't Locate FILE.DIR");
  417.       exit(22);
  418.       }
  419.    while(TRUE)
  420.       {
  421.       if((fscanf(stream,"%s %s",fname[fx] ,fdir[fx]))==EOF) break;
  422.       if(fname[fx++][0]=='~') break;
  423.       }
  424.    fclose(stream);
  425.    return;
  426.    }
  427. strcpy(pfn, fdir[fd]);
  428. strcat(pfn, fname[fd]);
  429. if(fd<=12)
  430.    {
  431.    char conv[12] = {"U123456789"};
  432.    for(fx=0;pfn[fx]!=NULL;fx++) ;
  433.    pfn[fx] = conv[current_universe];
  434.    pfn[++fx] = NULL;
  435.    }
  436. {
  437. ────────────────────────────────────────────────────────────────  ─────────────
  438.  
  439. get_path should be initialized with "get_path(0)" once before the routine is
  440. initially used. 
  441.  
  442. Each file has a unique "fd" which can be defines as follows:
  443.  
  444.      #define  Bank        1
  445.      #define  Config      2
  446.      #define  Flea        3
  447.      #define  Galaxy      4
  448.      #define  Link        5
  449.      #define  Mbeacon     6
  450.      #define  Newpaper    7
  451.      #define  Planet      8
  452.      #define  Port        9
  453.      #define  Spy         10
  454.      #define  Tally       11
  455.      #define  Warzine     12
  456.      #define  Count       13
  457.      #define  Cube        14
  458.      #define  Device      15
  459.      #define  History     16
  460.      #define  Id          17
  461.      #define  Macro       18
  462.      #define  Portname    19
  463.      #define  Radio       20
  464.      #define  Rank        21
  465.      #define  Ship        22
  466.      #define  Team        23
  467.      #define  Words       24
  468.      #define  WordsIndex  25
  469.      #define  ImportCheck 26
  470.      #define  EXport      27
  471.      #define  Door        28
  472.  
  473. So a call of "get_path(Ship)" would leave string array "pfn" containing the
  474. full path and file name leading to the Ship file.
  475. The name or location of the file should never be assumed.
  476.  
  477. current_universe points to the active dimension.
  478. The active dimension is important to selecting the proper file.
  479. Remember that Shareware versions deal strictly with Dimension 0.
  480. The presence of a dimension can be determined by checking for the existance of
  481. CONFIG.Ux where 'x' is the number of the dimension (or 'U' if dimension 0).
  482.  
  483. ==============================================================================
  484. CONFIG.UU contains all the variables that can be configured by CONFIG.EXE.
  485.  
  486. The format of the Configuration file is as follows:
  487.  
  488. typedef struct
  489.     begin
  490.        char  VAR[30]; : an identifier string for the variable.
  491.        long  VAL;     : the contents of the variable.
  492.     end CONFORM;
  493.  
  494. There are well over 100 variables and I will lay them out below.
  495.  
  496. If you wish to add a variable to CONFIG for use in your application, let me
  497. know and I may consider adding it to CONFIG.EXE.
  498.  
  499. A routine for reading a Config variable would look like this:
  500.  
  501.     long get_config(char *SEARCH)
  502.     begin
  503.     int confg;
  504.     CONFORM CONFIG;
  505.     long VALUE = 0L;
  506.     get_path(Config);
  507.     if((confg=open(pfn,O_RDWR|O_BINARY,S_IWRITE|S_IREAD))==-1) filerror(pfn,1);
  508.     while(VALUE == 0L)
  509.        begin
  510.        if((read(confg, &CONFIG, sizeof(CONFIG)))<1) break;
  511.        if(strcmp(CONFIG.VAR,SEARCH)==0)
  512.       begin
  513.       VALUE = CONFIG.VAL;
  514.       break;
  515.       end
  516.        end
  517.     close(confg);
  518.     return(VALUE);
  519.     end
  520.  
  521. *┌──────────────────────────────────────────────────────────────────────────┐
  522. *│ Below are contained the Configuration Variables currently used by UU.    │
  523. *│ To get the value of a configuation variable use the above routine in     │
  524. *│ the following manner:                                                    │
  525. *│      To get the current version number for instance type:                │
  526. *│      long ver = config("<VERSION">);                                     │
  527. *└──────────────────────────────────────────────────────────────────────────┘
  528. *
  529. *┌───────────────────────────────────────────────────────────────────────────┐
  530. *│ VERSION contains the actual version number of the Ultimate Universe game. │
  531. *└───────────────────────────────────────────────────────────────────────────┘
  532. <VERSION>              150
  533. *┌───────────────────────────────────────────────────────────────────────────┐
  534. *│ BBS sets whether Game is to be run from a BBS or as a Stand Alone.        │
  535. *│    If BBS is set to 0 Ultimate Universe acts as a Stand Alone,            │
  536. *│                       Prompts for Player Name and takes Parameters from   │
  537. *│                       COLOR, ANSI and MINUTES.                            │
  538. *│    if BBS set above 0 Ultimate Universe acts as a BBS Doors programs.     │
  539. *│                       Player Name, Color, Ansi and Minutes are taken from │
  540. *│                       Command Line Parameters.                            │
  541. *│                                                                           │
  542. *│    BBS should be set to 1 for use from Searchlight BBS.                   │
  543. *│    Support for other BBSs to follow shortly.                              │
  544. *└───────────────────────────────────────────────────────────────────────────┘
  545.  
  546. <BBS>                   1   * 0 = Stand Alone
  547.                 * 1 = Searchlight BBS
  548. <COLOR>                 1   * 0 = B&W,         1 = Color
  549. <ANSI>                  1   * 0 = Remote Viewing Disabled
  550.                 * 1 = Remote Viewing Player Selectable
  551.                 * 2 = Remote Viewing Enabled
  552. <MINUTES>              50   * Minutes Player is Allowed to Play
  553.                 * With BBS set above 0 sets Maximum Playing Time
  554.                 * to the Lower of MINUTES and Time Left on the
  555.                 * Board.
  556. <COMMTYPE>              0   * 0 = No Communications support
  557.                 * 1 = Internal Communications support
  558.                 * 2 = Fossil Driver support
  559. <VIDEO>                 1   * Covers the Method of Screen Writing
  560.                 * 0 = Bios Calls,  1 = Direct to Ram
  561.                 * Should be 0 for most BBSs or less compatible
  562.                 * computers.
  563. <MODEMSIM>              0   * When in Local Mode, MODEMSIM > 1 causes a
  564.                 * delay in output simulating the delay caused
  565.                 * to players. Thus the SYSOP is not granted
  566.                 * an unfair advantage. The greater the number
  567.                 * the greater the delay.
  568. <LOG>                   0   *
  569. *┌───────────────────────────────────────────────────────────────────────────┐
  570. *│ MAXSECTOR is The number of sectors in the Galaxy                          │
  571. *│ If UUD or the Autopilot runs too slow on your system reduce MAXSECTOR.    │
  572. *│ Memory and Hard disk space are also considerations on this value.         │
  573. *│ MAXSECTOR is only read when UUD RESET is run.                             │
  574. *│ Do not exceed 4000 or it WILL crash your system.                          │
  575. *└───────────────────────────────────────────────────────────────────────────┘
  576.  
  577. <MAXSECTOR>           1500
  578.  
  579. *─────────────────────────────────────────────────────────────────────────────
  580. * MAXPLAYER is The number of players that can play in a given campaign
  581. * Must not exceed 28
  582.  
  583. <MAXPLAYER>             28
  584.  
  585. *─────────────────────────────────────────────────────────────────────────────
  586. * The Colonization function allows expanstion of the Universe
  587. * TRUESECTOR sets the absolute total of sectors the universe might gain.
  588. * Maxsector + 100 is usually sufficient
  589.  
  590. <TRUESECTOR>           2000   * must not exceed 4000
  591.  
  592. *─────────────────────────────────────────────────────────────────────────────
  593. * PLAYS is the number of times per day a player may login
  594.  
  595. <PLAYS>                 3
  596.  
  597. *─────────────────────────────────────────────────────────────────────────────
  598. * INACTIVE is the number of days a player may not play before being removed
  599. * from the game.
  600.  
  601. <INACTIVE>             30
  602.  
  603. *─────────────────────────────────────────────────────────────────────────────
  604. * PORT.PROB sets the density of ports in the universe.
  605. * Setting it to 100 would that each sector had a 100% chance of having a port.
  606. * A Setting of 45 would give a 45% chance.
  607. * The setting should be atleast 1 and shouldn't exceed 99.
  608.  
  609. <PORT.PROB>             43
  610.  
  611. *─────────────────────────────────────────────────────────────────────────────
  612. * WARP.PROB must be a number from 1 to 8 (I would leave it four)
  613. * lowering this number causes less warps between sectors. Raising it causes
  614. * more and increases the chance for natural gate warps.
  615.  
  616. <WARP.PROB>             3     * must be from 1 to 8
  617.  
  618. *─────────────────────────────────────────────────────────────────────────────
  619. * SPY.PROB must be a number from 1 to MAXSECTOR
  620. * lowering this number increases the thoroughness of the spies.
  621. * MAXSECTOR/SPY.PROB is the number of sectors the spies check.
  622.  
  623. <SPY.PROB>            500
  624.  
  625. *─────────────────────────────────────────────────────────────────────────────
  626. * FED_CABAL sets the starting cargo of the Federation & Cabal planets.
  627. * the higher the number the tougher the Fed & Cabal at start.
  628. * Set too low and the players may take the game early on.
  629.  
  630. <FED_CABAL>        800000     * should be less than 20,000,000
  631.  
  632.  
  633. *─────────────────────────────────────────────────────────────────────────────
  634. * REVERSE_LINK sets the odds of all warps being Plasma Warps as opposed to
  635. * Gate Warps. Do not set below 0 or over 100.
  636. *
  637. <REVERSE_LINK>         85
  638.  
  639. *┌───────────────────────────────────────────────────────────────────────────┐
  640. *│ The Variables RUSSIAN, JACKPOT, BLACKHOLE, LINK.DECAY & LOTTERY           │
  641. *│  are switches that control the inclusion of the random (vs stragic)       │
  642. *│  elements of the game.                                                    │
  643. *│ With these flag set off (0) and XDEVICE 490 added to the bottom of this   │
  644. *│  file most random elements of the will be removed.                        │
  645. *│  Device 490 is the pot luck suprise device.                               │
  646. *└───────────────────────────────────────────────────────────────────────────┘
  647. *RUSSIAN sets the number of days your ship must survive to be eligable to play
  648. *        Russian Roulette.
  649. *RUSSIAN if set to 0 disables Russian Roulette
  650. *RUSSIAN if set to -1 enables Russian Roulette at all times.
  651. *RUSSIAN if set to -2 requires debt to be paid before playing.
  652.  
  653. <RUSSIAN>             -2
  654.  
  655. *─────────────────────────────────────────────────────────────────────────────
  656. *JACKPOT if set to 0 disables Quantum Credits
  657. *JACKPOT if set to 1 allows Quantum Credits but only increments
  658. *         Jackpot when it is played.
  659. *JACKPOT if set to 2 allows Quantum Credits and increments Jackpot daily.
  660.  
  661. <JACKPOT>               2
  662.  
  663. *─────────────────────────────────────────────────────────────────────────────
  664. *BLACKHOLE if set to 0 disables wandering Taakian Blackhole feature
  665. * non zero setting activates it.
  666.  
  667. <BLACKHOLE>             2
  668.  
  669. *─────────────────────────────────────────────────────────────────────────────
  670. *WILDFIRE sets the Activity level of the FEDERATION, CABAL, ANTI war.
  671. *Setting WILDFIRE to 1 causes a very active war and dramatically increases
  672. *the time UUD takes to run after a few days.
  673. *Setting WILDFIRE to 0 sets normal war mode.
  674.  
  675. <WILDFIRE>               1
  676.  
  677. *─────────────────────────────────────────────────────────────────────────────
  678. *LINK.DECAY sets the maximum number of warp links that may decay during UUD.
  679. *LINK.CREATE sets the maximum number of warps links that may appear during UUD.
  680. *a value of zero disables either function.
  681.  
  682. <LINK.CREATE>           42
  683. <LINK.DECAY>            35
  684.  
  685. *─────────────────────────────────────────────────────────────────────────────
  686. *LOTTERY if set to 0 disables the opening day lottery feature.
  687. * if set to 1 enables the lottery for the first logon of the day.
  688. * if set to 2 enables the lottery for the first 2 logons of the day.
  689. * etc.
  690.  
  691. <LOTTERY>               1
  692.  
  693. *─────────────────────────────────────────────────────────────────────────────
  694. *MADNESS sets age deferment for SPACE MADNESS
  695. *
  696. <MADNESS>               3
  697.  
  698. *┌───────────────────────────────────────────────────────────────────────────┐
  699. *│ START. Variables control the amounts that a ship contains when created.   │
  700. *│  Care should be taken that the value does not exceed the corresponding    │
  701. *│  LIMIT. variable.                                                         │
  702. *└───────────────────────────────────────────────────────────────────────────┘
  703.  
  704. <START.HOLDS>         500     * limit 32000
  705. <START.CREDIT>    2500000     * limit 2,000,000,000
  706. <START.FIGHTER>      1000     * limit 2,000,000,000
  707. <START.MINES>           0     * limit 1,000,000
  708. <START.CLOAK>           1     * limit 2,000,000,000
  709. <START.ACLOAK>          0     * limit 2,000,000,000
  710. <START.TURNS>         200     * limit 32000
  711. <START.WARP1>           0     * limit 32000
  712. <START.WARP2>           0     * limit 32000
  713. <START.WARP3>           5     * limit 32000
  714. <START.GENESIS>         1     * limit 32000
  715. <START.PPROBE>          1     * limit 32000
  716.  
  717. * the number of device bays
  718.  
  719. <START.BAY>            22     * limit 32
  720. <START.PORT6>      300000     * Maximum Cost of Free First Device at Port 6
  721.                   * limit LIMIT.CREDIT
  722. *─────────────────────────────────────────────────────────────────────────────
  723. * if START.DEVICE = device number (1-500) ship starts out with that device
  724. * if START.DEVICE = 0 ship starts out with no device
  725.  
  726. <START.DEVICE1>       111     * invalid device number will cause weirdness
  727. <START.DEVICE2>       490     * 490 IS A POT LUCK SURPRISE
  728. <START.DEVICE3>         0     * check ports 6 + 8 for other numbers to use
  729. <START.DEVICE4>         0     * run CONCOMP if you change this later
  730. <START.DEVICE5>         0
  731.  
  732. *┌───────────────────────────────────────────────────────────────────────────┐
  733. *│ LIMIT. Variables control the amounts that a ship can contain.             │
  734. *│  Care should be taken that the value is NOT less than the corresponding   │
  735. *│  START. variable.               (see above START.LIMITS)                  │
  736. *└───────────────────────────────────────────────────────────────────────────┘
  737.  
  738. <LIMITBAY>             30     * limit 32
  739. <LIMITHOLD>         32700     * limit 32760
  740. <LIMITTURN>           500     * limit 32000
  741. <LIMITCREDIT>  1000000000     * limit 2,000,000,000
  742. <LIMITFIGHTER> 2000000000     * limit 2,000,000,000
  743. <LIMITMINE>        500000     * limit 2,000,000,000
  744. <LIMITCLOAK>    100000000     * agrueable but I wouldn't pass 100000000
  745.                   * will get weird if multi-enhancers push
  746.                   * value past 2,000,000,000
  747. <LIMITACLOAK>   100000000     * ditto
  748. <LIMITWARP1>         4000     * limit 32000
  749. <LIMITWARP2>         4000     * limit 32000
  750. <LIMITWARP3>          200     * limit 32000
  751. <LIMITGENESIS>         25     * limit 32000
  752. <LIMITPPROBE>         100     * limit 32000
  753.  
  754. * LIMITWSHIELD sets the Maximum erg level for a Warp Shield
  755.  
  756. <LIMITWSHIELD>      30000     * limit 32000
  757.  
  758. *─────────────────────────────────────────────────────────────────────────────
  759. * DEBT. fields set the Federations obligations
  760. * none of these values may be zero nor may they exceed 16,000,000
  761.  
  762. <DEBT>            5000000     * debt on a new ship
  763. <DEBT.DAYS>            10     * days of slack given before interest is charged
  764. <DEBT.CABAL>            5     * credits given per day for Cabal drone kills
  765. <DEBT.MINE>           250     * credits given per day for Cabal mine kills
  766.  
  767. *┌───────────────────────────────────────────────────────────────────────────┐
  768. *│ COST. Variables control the standard (pre-sale) prices of items at SOL.   │
  769. *│  Setting a COST. variable higher than LIMITCREDIT would make it           │
  770. *│  unobtainable [this is the only occasion the setting should exceed the    │
  771. *│  maximum limit.                                                           │
  772. *└───────────────────────────────────────────────────────────────────────────┘
  773.                            
  774. <COSTHOLD>           1500     * limit 1000000
  775. <COSTTURN>          40000     * limit 1000000
  776. <COSTFIGHTER>         100     * limit 1000000
  777. <COSTMINE>          20000     * limit 1000000
  778. <COSTCLOAK>          1000     * limit 1000000
  779. <COSTACLOAK>         2000     * limit 1000000
  780. <COSTWARP1>        100000     * limit 1000000
  781. <COSTWARP2>        200000     * limit 1000000
  782. <COSTWARP3>         25000     * limit 1000000
  783. <COSTGENESIS>       30000     * limit 1000000
  784. <COSTPPROBE>         5000     * limit 1000000
  785.  
  786. *─────────────────────────────────────────────────────────────────────────────
  787. * PRO variables set the planet production rates
  788. *     lowering the values increases the daily production
  789. *     do not set the value to less than 1 or higher than 32000
  790. *     This is hard to explain so adjusting it by trial and error is best.
  791. *     You can change these any time and run CONCOMP if you dont like them.
  792.  
  793. <PRO.DRONE>            30     * attack drones
  794. <PRO.MINE>           7510     * sector mines
  795. <PRO.CLOAK>          1300     * cloaking energy
  796. <PRO.ACLOAK>         4700     * anticloaking energy
  797. <PRO.NULL>          16197     * warp shield nullifiers
  798. <PRO.SHIELD>         8983     * warp shield energy
  799. <PRO.FLASH>         14020     * flash warps
  800.  
  801. *─────────────────────────────────────────────────────────────────────────────
  802. * PRL variables set the maximum planet production rates
  803. *     avoid extremes
  804.  
  805. <PRL.CARGO>     200000000     * ORE, ORG etc.
  806. <PRL.DRONE>     200000000     * attack drones
  807. <PRL.MINE>          22000     * sector mines
  808. <PRL.CLOAK>       3500000     * cloaking energy
  809. <PRL.ACLOAK>      3500000     * anticloaking energy
  810. <PRL.NULL>          15000     * warp shield nullifiers
  811. <PRL.SHIELD>        15000     * warp shield energy
  812. <PRL.FLASH>            50     * flash warps
  813.  
  814. *┌───────────────────────────────────────────────────────────────────────────┐
  815. *│ The following variables set up the destructiveness of Sector Mines.       │
  816. *└───────────────────────────────────────────────────────────────────────────┘
  817. * MINE_DAMAGE_RANDOM is the random part of a sector mine blast
  818. * MINE_DAMAGE_BASE   is the fixed part of a sector mine blast
  819. * blast = (rand % MINE_DAMAGE_RANDOM)+MINE_DAMAGE_BASE
  820.  
  821. <MINE_DAMAGE_RANDOM> 2000     * limit 20000
  822. <MINE_DAMAGE_BASE>    500     * limit 20000
  823.  
  824. *┌───────────────────────────────────────────────────────────────────────────┐
  825. *│ MARS. variables set the initializing values for the Mars Port (Port 2)    │
  826. *└───────────────────────────────────────────────────────────────────────────┘
  827. * MARS.MAXBET sets the opening maximum bet at the Mars Port (Sector 2)
  828.  
  829. <MARS.MAXBET>      500000     * limit 1,000,000,000
  830.  
  831. * MARS.COFFER sets the coffer at the Mars Port
  832.  
  833. <MARS.COFFER>    30000000     * limit 1,000,000,000
  834.  
  835. *┌───────────────────────────────────────────────────────────────────────────┐
  836. *│ Newspaper sets the number of days the Galactic Newspaper will be kept     │
  837. *│ when UUD is run.                                                          │
  838. *└───────────────────────────────────────────────────────────────────────────┘
  839.  
  840. <NEWSPAPER>             3     * limit 99
  841.  
  842. *┌───────────────────────────────────────────────────────────────────────────┐
  843. *│ IMPORT and EXPORT set whether or not Importing and Exporting Ships is     │
  844. *│ allowable on in your universe.                                            │
  845. *│ These functions are only allowable on Registered versions and have no     │
  846. *│ effect on Shareware versions.                                             │
  847. *│                                                                           │
  848. *│ If IMPORT is set to 1 Importation of outside ships is enabled.            │
  849. *│ If EXPORT is set to 1 Exportation of Ships is enabled.                    │
  850. *│ A setting of 0 disables either function.                                  │
  851. *└───────────────────────────────────────────────────────────────────────────┘
  852.  
  853. <IMPORT>                1
  854. <EXPORT>                0
  855. <IMPSECTOR>             0
  856.  
  857. *┌───────────────────────────────────────────────────────────────────────────┐
  858. *│ XDEVICE causes the device number listed to be be outlawed in the game     │
  859. *│ multiple XDEVICES can be listed                                           │
  860. *│ This would be useful in two situations. Say that a device is causing      │
  861. *│ the Sysops board to crash. It is traced to device #108 (the number used   │
  862. *│ to purchase the device). The Sysop then sets up XDEVICE 108 and all is    │
  863. *│ well. Or, a group of players find that device number 450 makes the game   │
  864. *│ less exciting. After complaining to the Sysop, the Sysop agrees and       │
  865. *│ sets XDEVICE 450.                                                         │
  866. *└───────────────────────────────────────────────────────────────────────────┘
  867.  
  868. <XDEVICE0>               0 
  869. <XDEVICE1>               0 
  870. <XDEVICE2>               0 
  871. <XDEVICE3>               0 
  872. <XDEVICE4>               0 
  873. <XDEVICE5>               0 
  874. <XDEVICE6>               0 
  875. <XDEVICE7>               0 
  876. <XDEVICE8>               0 
  877. <XDEVICE9>               0 
  878. *─────────────────────────────────────────────────────────────────────────────
  879. * END is used only to tell the config routines that it was reached the end
  880.  
  881. <END>                   0
  882.  
  883. *─────────────────────────────────────────────────────────────────────────────
  884.